#Param: fd, puntero al string donde debo guardar y cantidad de caracteres a leer
#retorna en V0 la cantidad de char leidos

#define STDERR 2

#include <mips/regdef.h>
#include <sys/syscall.h>
.data
msj_error: .asciiz "Error de Lectura\n"
.text
.align 2
.globl read
.ent read


read:
.frame $fp,48,ra
.set noreorder
.cpload t9
.set reorder
subu sp,sp,48
.cprestore 32
sw ra,44(sp)
sw $fp,40(sp)
move $fp,sp

#guardo los parametros recibidos
sw a0,48(sp)
sw a1,52(sp)
sw a2,56(sp)


li v0,SYS_read
syscall
bnez a3,read_error #verifico si hay error 

eof:
move sp,$fp
lw ra,44(sp)
lw $fp,40(sp)
addu sp,sp,48
j ra

read_error:
li v0,SYS_write
la a0,STDERR
la a1,msj_error
li a2,17
syscall #escribo en stderr

li v0,SYS_exit #salgo del programa
li a0,1
syscall



.end read
